#ifndef CONCORDEPREPARER_H_
#define CONCORDEPREPARER_H_

#include <vector>
using std::vector;
#include <string>
using std::string;
#include <fstream>
using std::ofstream;
#include <iostream>
using std::endl;

#include "Waypoint.h"
#include "TSPPreparer.h"

class ConcordePreparer: public TSPPreparer
{
	class ConcordeWaypoint: public Waypoint
	{
	public:
		ConcordeWaypoint(	string sequence,
							string cacheName,
							string cacheDescription,
							string latitude,
							string longitude) :
			Waypoint(cacheName, cacheDescription, latitude, longitude)
		{
			this->sequence = sequence;
		}

		string getSequence()
		{
			return sequence.c_str();
		}

	private:
		string sequence;
	};

public:
	ConcordePreparer();
	virtual ~ConcordePreparer();

	virtual void prepare(string outputLocation, WaypointDB& waypointDB);

private:

	void writeFile(const string& outputFile);

private:

	vector<ConcordeWaypoint> concordeWaypoints;
};

#endif /* CONCORDEPREPARER_H_ */
